package oss_upload

import (
	"base-web/global"
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"os"
)

//oss文件上传
//localFileName 由本地文件路径加文件名包括后缀组成，例如/users/local/myfile.txt。
//fileName上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg
func OssUpload(fileName, localFileName string) (url string, err error) {
	ossConfig := global.BASE_CONFIG.OssConfig
	objectName := fileName
	// 创建OSSClient实例。
	client, err := oss.New(ossConfig.Endpoint, ossConfig.AccessKeyId, ossConfig.AccessKeySecret)
	if err != nil {
		return
	}
	// 获取存储空间。
	bucket, err := client.Bucket(ossConfig.BucketName)
	if err != nil {
		return
	}
	// 上传文件。
	err = bucket.PutObjectFromFile(objectName, localFileName)
	if err != nil {
		return
	}

	//删除本地文件
	os.Remove(localFileName)
	//拼接oss文件路径
	url = fmt.Sprintf("%s/%s", ossConfig.EndpointUrl, objectName)
	return
}
